package ltd.hanamaki.review.dataStruct;

import java.util.*;

public class HashMapTest {


    public static void main(String[] args) {
        /* add */

        /* put */

//        使用 HashMap
        /* 创建一个  键 为 Integer类型的  值 为 String类型 */
        HashMap<Integer, String> map = new HashMap<>();

        /* 获取 map中的 元素的 个数 */
        int size = map.size();
        System.out.println(size);

        /* 向 map中加值   put */
        map.put(1, "hanamaki");
        map.put(2, "andy");
        map.put(3, "jixiang");

        System.out.println(map);

        /* 在 map中取值 通过获取 键 来得到 指定键所对应的  值 */
        String s = map.get(2);
        System.out.println(s);


        /* 通过 entrySet来遍历 map容器 */
        Set<Map.Entry<Integer, String>> entries = map.entrySet();// alt + enter + enter
        System.out.println(entries);
        /* 通过  iterator 迭代器来遍历 set集合 */
        Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, String> next = iterator.next();
            /* 通过  entry几口来获取 键 和  值 */
            System.out.println(next.getKey() + "----->" + next.getValue());

        }


        /* 使用 keySet 来遍历  map容器 */
        Set<Integer> integers = map.keySet();
        /* 通过 set 遍历 可以 得到 map中的  所有的 键  通过 键 就可以  取到 对应的  值 */
        Iterator<Integer> iterator1 = integers.iterator();
        while (iterator1.hasNext()) {
            /* 获取键 */
            Integer key = iterator1.next();
            /* 通过 key 来取 对应的值 */
            System.out.println(key + "----->" + map.get(key));

        }

        /* 通过  遍历 map容器中的  values 来取值 */
        Collection<String> values = map.values();
        /* 通过 迭代器对应 来遍历  Collection 容器来得到  对应的 所有的  值 */
        Iterator<String> iterator2 = values.iterator();
        while (iterator2.hasNext()) {
            System.out.println("值：" + iterator2.next());
        }

        for (String value : map.values()) {



        }

        for (Integer integer : map.keySet()) {



        }





    }
}
